package ipdesk.model.user.dao;

import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.template.SqlMapDaoTemplate;

import ecg.util.SessionUtils;

import ipdesk.model.user.bean.UserBean;

public class UserImpl extends SqlMapDaoTemplate implements IUser
{
	
	public UserImpl(DaoManager manager)
	{
		super(manager);
	}
	
	public int getSelectCount(UserBean userBean) throws Exception
	{
		int count = 0;
		count = (Integer)this.queryForObject("user.selectCount", userBean.getUserEmail());
		
		return count;
	}
	
	public void insertUserData(UserBean userBean) throws Exception
	{
		// iBatis 연동.
		this.insert("user.userInsert", userBean);
	}
	
	// 해당 이메일의 비밀번호를 가져오는 메서드
	public String getPassword(UserBean userBean) throws Exception
	{
		String password = (String)this.queryForObject("user.selectPassword", userBean.getUserEmail());
	
		return password;
	}
	
	// 해당 이메일에 해당하는 전체 정보를 가져오는 메서드
	public UserBean getUserInfo(UserBean userBean) throws Exception
	{
		String userEmail = "";
		
		if(userBean.getUserEmail() == null)
		{
			userEmail = SessionUtils.getLoginSession().get("userEmail");
		}
		else
		{
			userEmail = userBean.getUserEmail();
		}
		
		
		UserBean result = (UserBean)this.queryForObject("user.selectUserInfo", userEmail);
	
		return result;
	}
	
	// 마지막 로그인 시간 및 마지막 로그인 IP 업데이트하는 메서드
	public void lastLoginInfoUpdate(UserBean userBean) throws Exception
	{
		// iBatis 연동.
		this.update("user.lastLoginInfoUpdate", userBean);
	}
	
	/**
	 * 사용자 비밀 번호 업데이트
	 * 
	 */
	public void updatePassword(UserBean userBean)
	{
		System.out.println("새 비밀번호: "  + userBean.getUserPassword());
		this.update("user.updatePassword", userBean);
	}
}
